package br.com.iswe.gwt.ui.client.service;

import java.util.List;

import br.com.iswe.core.entidades.gwt.BeanMap;
import br.com.iswe.gwt.ui.client.ListBoxInfo;
import br.com.iswe.gwt.ui.client.QueryInfo;
import br.com.iswe.gwt.ui.client.RequestInfo;
import br.com.iswe.gwt.ui.client.SessionInfo;
import br.com.iswe.gwt.ui.client.exp.ISWERpcException;

import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("manterService")
public interface BeanMapService extends ManyToManyClientContract<BeanMap> {

	List<ListBoxInfo> consultar(List<ListBoxInfo> listaRequest, RequestInfo requestInfo) throws ISWERpcException;
	
	List<BeanMap> consultar(String controllerName, BeanMap filtro, QueryInfo pageInfo) throws ISWERpcException;
	
	BeanMap detalhar(String controllerName, BeanMap filtro, RequestInfo requestInfo) throws ISWERpcException;
	
	
	BeanMap salvar(String controllerName, BeanMap bean, RequestInfo requestInfo) throws ISWERpcException;
	
	BeanMap deletar(String controllerName, BeanMap bean, RequestInfo requestInfo) throws ISWERpcException;
	BeanMap deletar(String controllerName, List<BeanMap> itens, RequestInfo requestInfo) throws ISWERpcException;
	
	SessionInfo getSessionInfo(String controllerName) throws ISWERpcException;
	
	BeanMap executeMap(String controllerName, String methodName, BeanMap BeanMapBean, RequestInfo requestInfo) throws ISWERpcException;
	List<BeanMap> executeList(String controllerName, String methodName, BeanMap BeanMapBean, RequestInfo requestInfo) throws ISWERpcException;

	SessionInfo efetuarLogin(String controllerName, BeanMap bean) throws ISWERpcException;
	void efetuarLogout(String controllerName) throws ISWERpcException;
}
